﻿/*************************************************************************************

- CLR版本：        4.0.30319.42000
- 类 名 称：       DeleteDBData
- 机器名称：       YTE
- 命名空间：       AOI.Quartz
- 文 件 名：       DeleteDBData
- 创建时间：       2020/12/9 9:19:56
- 作    者：       YTE
- 说   明：
- 修改时间：
- 修 改 人：
  *************************************************************************************/

using LD.Host;
using LD.Host.Sqlguar;
using Quartz;
using System;
using System.Threading.Tasks;

namespace LD.Quartz
{
    public class DeleteDBJob : IJob
    {
        Task IJob.Execute(IJobExecutionContext context)
        {
            return DeleteData();
        }
        public Task DeleteData()
        {
            return Task.Run(() =>
            {
                var day = (string)Cache.GetCache(CONST.HYFSK_DATA_DAY);
                if (int.TryParse(day, out int _day))
                {
                    if (_day <= 1)
                        _day = 7;
                    DBHelper.Instance.Sql.Queryable<TB_PressData>().Where(x => x.CreateTime <= DateTime.Now.AddYears(_day)).ToList();
                    var list = DBHelper.Instance.Sql.Queryable<TB_ScrewData>().Where(x => x.CreateTime <= DateTime.Now.AddYears(_day)).ToList();
                    foreach (var item in list)
                    {
                        DBHelper.Instance.Sql.Deleteable<TB_ScrewDetailData>().Where(x => x.Pid <= item.Id).ExecuteCommand();
                    }
                    DBHelper.Instance.Sql.Deleteable<TB_ScrewData>().Where(x => x.CreateTime <= DateTime.Now.AddYears(_day)).ExecuteCommand();
                    //压缩
                    DBHelper.Instance.Sql.Ado.SqlQuery<int>("VACUUM");
                }
            });
        }
    }
}
